/*
 * Licensed to the 南京汇海交通科技有限公司
 *
 * Copyright (c) 2025.
 * All rights reserved.
 *
 * 本软件属南京汇海交通科技有限公司所有，在未获得南京汇海交通科技有限公司正式授权情况下，任何企业和个人，不能获取、阅读、安装、传播本软件涉及的任何受知识产权保护的内容。
 */
package com.cje.gateway.security.config;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * 批量读取nacos配置
 */
@Getter
@Setter
@ToString
@RefreshScope
@Component
@ConfigurationProperties(prefix = "application.security")
public class CustomizeSecurityProperties {

    /**
     * 会话标识的KEY
     */
    private String authTokenKey;

    /**
     * 白名单，无需通过认证即可被允许访问的资源
     */
    private List<String> whiteList;

    /**
     * 需要认证的名单
     */
    private List<String> needCheck;

    /**
     * 通过认证后 不需要鉴权的名单
     */
    private List<String> noNeedAuthentication;

    /**
     * 通过认证后 需要鉴权的名单
     */
    private List<String> needAuthentication;

    /**
     * 白名单 url列表
     */
    public List<String> getWhiteList() {
        if (whiteList == null) {
            return new ArrayList<>();
        }
        return whiteList;
    }

}
